Developer(s) | Marcel van der Veer |
---|---|
Initial release | September 2002 |
Stable release | 2.3.5 / December 1, 2011 |
Written in | C |
Operating system | Linux, FreeBSD, Mac OS X, Microsoft Windows |
Type | Compiler, Interpreter |
License | GNU General Public License |
Website | http://jmvdveer.home.xs4all.nl/algol.html |
ALGOL68G or Algol 68 Genie is a recent ALGOL 68 compiler-interpreter. ALGOL68G is a nearly full implementation of ALGOL 68 as defined by the Revised Report and also implements partial parametrisation, which is an extension of ALGOL 68. After successful parsing of an entire source program, the syntax tree, that serves as an intermediate program representation, is interpreted. The interpreter performs many runtime checks. Optionally, units with large interpreter overhead can be compiled to speed execution.
The author and maintainer of Algol 68 Genie is Marcel van der Veer. Algol 68 Genie is released under GPL and runs on Linux, Unix, Mac OS X and Windows, and is available here.
Contents |
NIL
or dereferencing of NIL
, using uninitialised values, invalid operands to standard prelude operators and procedures, bounds check when manipulating arrays, overflow of arithmetic modes, "dangling references", that are names that refer to deallocated storage.LONG INT, LONG REAL
and LONG COMPLEX
with roughly doubled precision with respect to INT, REAL, COMPLEX
and implementation of multiprecision arithmetic through LONG LONG INT, LONG LONG REAL
and LONG LONG COMPLEX
which are modes with user defined precision which is set by an option.ANDF
and ORF
.WHILE ... DO SKIP OD
.DOWNTO
with comparable function as TO
in loop clauses; DOWNTO
decreases, whereas TO
increases, the loop counter by the value of the (implicit) by-part.The important deviations are:
FLEX [ ] FLEX [ ] FLEX [ ] CHAR
, but on a FLEX [ ] CHAR
. This maps better onto operating systems such as Unix or Linux.reset
can intervene with sequential processing.readf, printf, writef, getf
or putf
are processed, the format associated with the corresponding file is purged - that is, remaining insertions are processed and the format is discarded.